# -*- coding: utf-8 -*-
"""
TG标签组件 - TgLabel
基础标签组件，支持多种样式类型
"""
from PySide6.QtWidgets import QLabel
from ...style_manager import StyleManager


class TgLabel(QLabel):
    """TG标签组件"""
    
    def __init__(self, text="", style_type='normal', color_theme='primary', parent=None):
        super().__init__(text, parent)
        # 初始化TG组件属性
        self._component_name = self.__class__.__name__
        self._is_initialized = False
        self._style_applied = False
        self._theme = 'default'
        self._size_hint = 'medium'
        
        # 设置组件特定属性
        self.style_type = style_type
        self.color_theme = color_theme
        
        # 初始化组件
        self.initialize()
    
    @property
    def component_name(self):
        """获取组件名称"""
        return self._component_name
    
    @property
    def is_initialized(self):
        """检查组件是否已初始化"""
        return self._is_initialized
    
    @property
    def style_applied(self):
        """检查样式是否已应用"""
        return self._style_applied
    
    @property
    def theme(self):
        """获取主题"""
        return self._theme
    
    @theme.setter
    def theme(self, value):
        """设置主题"""
        if self._theme != value:
            self._theme = value
            self.apply_style()
    
    def setup_ui(self):
        """设置用户界面"""
        # QLabel的基本设置已在__init__中完成
        pass
    
    def apply_style(self):
        """应用样式"""
        if self.style_type == 'title':
            StyleManager.apply_title_style(self, self.text(), self.color_theme)
        elif self.style_type == 'description':
            StyleManager.apply_description_style(self, self.text())
        else:
            # 普通标签样式
            self.setStyleSheet(f"""
                QLabel {{
                    font-family: {StyleManager.FONT_FAMILY['default']}; /* 使用新的字体 */
                    font-size: {StyleManager.FONT_SIZES['normal']};
                    color: {StyleManager.COLORS['text_primary']};
                    padding: {StyleManager.SPACING['sm']}; /* 增加内边距 */
                    background-color: transparent; /* 背景色改为透明 */
                    /* border: 1px solid {StyleManager.COLORS['border']}; */ /* 移除边框 */
                    border-radius: {StyleManager.BORDER_RADIUS['small']}; /* 添加圆角 */
                }}
            """)
        self._style_applied = True
    
    def initialize(self):
        """初始化组件"""
        if not self._is_initialized:
            self.setup_ui()
            self.apply_style()
            self._is_initialized = True
            self._style_applied = True 